/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package fi.ahola.tietorekisteri;

import java.io.Serializable;
import java.util.ArrayList;

/**
 * Maatila-olio, joka sisältää Hevoset-olioita.
 * @author f0899
 */
public class Maatila implements Serializable  {

    //Luodaan arraylist
    private ArrayList<Hevonen> hevoset;
    //Luodaan temp-Hevonen
    private Hevonen hevo = new Hevonen();

    
    /**
     * Luokan konstruktori
     */
    public Maatila() {
        hevoset = new ArrayList<Hevonen>();    // henkilot-taulukkoon tulee Henkilo-luokan olioita
    }

    
    /**
     * Palauttaa Hevonen-olion annetusta indexistä.
     * @param k Sijainti Maatila-oliossa josta palautetaan
     * @return Hevonen-olio
     */
    public Hevonen palautaHevonen(int k) {
        hevo = hevoset.get(k);
        return hevo;
    }
    
    
    /**
     * Lisää Hevonen-olion Maatila-olioon.
     * @param h Lisättävä Hevonen-olio
     */
    public void lisaaHevonen(Hevonen h) {
        hevoset.add(h);
    }


    /**
     * Korvaa Maatila-oliossa olevan Hevonen-olion.
     * @param h Hevonen joka sijoitetaan vanhan päälle
     * @param i Sijainti Maatila-oliossa johon sijoitetaan
     */
    public void muutaHevosta(Hevonen h, int i) {
        hevoset.set(i, h);
    }
    
   
    /**
     * Hakee Hevonen-olion sijainnin hevosen nimen perusteella. Mikäli hevonen löytyy, palauttaa sijainnin Maatila-oliossa, jos hevosta ei löydy palauttaa -1.
     * @param nimi Hevosen nimi jolla haetaan
     * @return Hevonen-olion sijainti Maatila-oliossa
     */
    public int etsiHevonen(String nimi) {
        for (int i = 0; i < hevoset.size(); i++) {
            hevo = hevoset.get(i);
            if (hevo.palautaNimi().equals(nimi)) {
                return i;
            }
        }
        return -1;
    }

    
    /**
     * Palauttaa taulukon jossa on hevosten nimet. Hevosen nimen sijainnin numero taulukossa on sama kuin Maatila-oliossa.
     * @return Taulukko jossa on hevosten nimet
     */
    public Object[] tulostaNimet() {

        String arrayt[] = new String[hevoset.size()];

        for (int i = 0; i < hevoset.size(); i++) {
            hevo = hevoset.get(i);
            arrayt[i] = hevo.palautaNimi();
        }
        return arrayt;
    }
   
    
    /**
     * Poistaa Hevonen-olion Maatila-oliosta.
     * @param i Poistettavan Hevonen-olion sijainti
     */
    public void poistaHevonen(int i) {
        hevoset.remove(i);
    }
}
